]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
3 years agowindow: Port to AdwToolbarView
Christopher Davis [Mon, 19 Jun 2023 00:55:38 +0000 (20:55 -0400)]
window: Port to AdwToolbarView

Applications should use AdwToolbarView going forward to contain
their headerbar and content.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2802>

3 years agowindow: Port to AdwApplicationWindow
Christopher Davis [Mon, 19 Jun 2023 00:53:30 +0000 (20:53 -0400)]
window: Port to AdwApplicationWindow

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2802>

3 years agoextensions-app: Extend build instructions
Martin Zurowietz [Tue, 13 Jun 2023 19:05:49 +0000 (21:05 +0200)]
extensions-app: Extend build instructions

Related to #6575

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2799>

3 years agoparentalControlsManager: Don't log error when disabled
Florian Müllner [Fri, 9 Jun 2023 13:41:03 +0000 (15:41 +0200)]
parentalControlsManager: Don't log error when disabled

We currently special-case the DISABLED error when initializing
filtering, but not on app filter changes.

While it seems reasonable that Malcontent.Manager wouldn't emit
the signal while disabled, that's not actually true: It is emitted
when any user account information tracked by AccountsServices
changes.

Even if the signal were limited to changes of the ParentalControls
extension, it would still get emitted when app filtering *becomes*
disabled.

So regardless of potential improvements in libmalcontent itself,
we should filter out the DISABLED consistently, both when creating
the initial filter and when updating it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6749

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2796>

3 years agoUpdate Slovak translation
Dušan Kazik [Thu, 8 Jun 2023 14:09:24 +0000 (14:09 +0000)]
Update Slovak translation

(cherry picked from commit 113bcb4b106ffd146ee2632d7fe8c9fb0156e058)

3 years agomagnifier: Fix cursor offset
Андрей Гриценко [Mon, 29 May 2023 14:42:13 +0000 (17:42 +0300)]
magnifier: Fix cursor offset

Commit c449058d447c2588d changed the pointer clone to use a single
actor. However that broke applying the hotspot translation to the
position, so the magnified cursor is now displayed with a shift.

Undo the change to restore the old behavior.

This reverts commit c449058d447c2588de81df2e2bd7a1ae98c4060f.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2780>

3 years agoinit: Move Meta main loop into JavaScript after GJS context is initialized
Evan Welsh [Wed, 7 Jun 2023 15:58:08 +0000 (08:58 -0700)]
init: Move Meta main loop into JavaScript after GJS context is initialized

gjs now has an internal mainloop that it can spin to resolve
module imports. That loop uses the thread default context,
so its possible that other sources, namely from mutter, get
dispatched when iterating the context. If that happens before
mutter is properly initialized, this will lead to a crash.

GjsContext needs to iterate its internal mainloop when initializing
to resolve internal modules, to avoid iterating Meta's mainloop and
triggering events before Meta is ready we will initialize the Shell
global and thus the GjsContext (js_context) before Meta.

Once GjsContext is initialized, we can call meta_context_setup().
Once Meta is setup and started, we'll run init.js which uses GJS'
internal promises API to set a "mainloop hook". The mainloop hook
is run immediately after the module returns so GJS will not attempt
to iterate the main loop again before exiting.

Also adjust the 'headlessStart' test to not wait for the
MetaContext::started signal, as that signal has now already
been emitted when the code is executed.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6691

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2781>

3 years agopanel: Refactor quick settings loading for asynchronous imports
Evan Welsh [Wed, 7 Jun 2023 15:30:29 +0000 (08:30 -0700)]
panel: Refactor quick settings loading for asynchronous imports

When the Shell ports to ESM, our inline imports of the network and
bluetooth indicators will no longer be possible, refactor quick settings
to load indicators asynchronously.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2563>

3 years agoanimation: Don't get size information until spinner has a parent
Evan Welsh [Wed, 7 Jun 2023 15:47:50 +0000 (08:47 -0700)]
animation: Don't get size information until spinner has a parent

get_size() in _syncAnimationSize() can't be called until the actor
has a parent, otherwise we'll get an error for calling
st_get_theme_node() prior to the actor being on a stage.

_syncAnimationSize() is called asynchronously via
textureCache.load_sliced_image() and there is currently no guarantee
the actor will actually be "loaded" prior to calling it.

This becomes a more obvious error/issue when refactoring parts of the
Shell loading to also be asynchronous.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2563>

3 years agoci: Migrate eslint-plugin-jsdoc rule and pin eslint versions
Evan Welsh [Wed, 7 Jun 2023 06:23:54 +0000 (23:23 -0700)]
ci: Migrate eslint-plugin-jsdoc rule and pin eslint versions

Pin eslint to v8 and eslint-plugin-jsdoc to v46, migrate the removed
jsdoc rule.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2792>

3 years agoUpdate Russian translation
Julia Dronova [Wed, 7 Jun 2023 16:00:05 +0000 (16:00 +0000)]
Update Russian translation

3 years agoshell/perf-helper: Port to GTK4
Florian Müllner [Thu, 13 Apr 2023 20:39:29 +0000 (22:39 +0200)]
shell/perf-helper: Port to GTK4

After the preparations in the previous commits, the port is now
fairly straight-forward.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Use custom widget as content
Florian Müllner [Mon, 17 Apr 2023 23:52:26 +0000 (01:52 +0200)]
shell/perf-helper: Use custom widget as content

The windows we create use a simple pattern as content, as that's
easier to follow than completely empty windows. GTK4 no longer
allows hooking into the drawing of arbitrary widgets, so prepare
for that by using a dedicated subclass instead of a signal handler.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Use custom CSS for background
Florian Müllner [Tue, 18 Apr 2023 01:35:17 +0000 (03:35 +0200)]
shell/perf-helper: Use custom CSS for background

GTK4 no longer has the concept of "app-paintable" to skip the
default background drawing. Prepare for that by setting the
desired background via CSS and draw on top of that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-handler: Use app to track window
Florian Müllner [Fri, 14 Apr 2023 23:35:42 +0000 (01:35 +0200)]
shell/perf-handler: Use app to track window

GtkApplication already tracks its windows, so we don't have to
maintain our own list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Subclass ApplicationWindow
Florian Müllner [Tue, 18 Apr 2023 17:07:29 +0000 (19:07 +0200)]
shell/perf-helper: Subclass ApplicationWindow

The signals we use to track whether a window has been mapped and
exposed no longer exist in GTK4. Prepare for that by using a
dedicated subclass instead of signal handlers.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Use GApplication
Florian Müllner [Thu, 13 Apr 2023 14:40:58 +0000 (16:40 +0200)]
shell/perf-helper: Use GApplication

The gtk_main() API is gone in GTK4, so we'll have to either
manage our own loop, or use GApplication. The latter also
handles the D-Bus setup for us, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoshell/perf-helper: Remove unused struct members
Florian Müllner [Thu, 13 Apr 2023 20:47:26 +0000 (22:47 +0200)]
shell/perf-helper: Remove unused struct members

Some parameters are only relevant when creating the window, and
are therefore never read from the window info struct.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agoscripting: Make helper proxy initialization async
Florian Müllner [Sat, 27 May 2023 01:19:39 +0000 (03:19 +0200)]
scripting: Make helper proxy initialization async

We are about to port the helper proxy to GApplication, which means
that it will establish a display connection before exporting its
D-Bus name. That means that the compositor must be able to respond
to a roundtrip request to avoid locking, so don't block on the proxy
becoming available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agost/test-theme: Don't initialize GTK
Florian Müllner [Wed, 12 Apr 2023 14:44:52 +0000 (16:44 +0200)]
st/test-theme: Don't initialize GTK

St no longer requires GTK to be initialized, so this is no longer
needed (and pulls in an unnecessary GTK dependency).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agotests: Port to Gtk4
Florian Müllner [Wed, 8 Mar 2023 19:25:13 +0000 (20:25 +0100)]
tests: Port to Gtk4

There's another remaining bit of Gtk3 code in a small test program
that changes a window title to a random character sequence every
five seconds. While the value of that test is a bit questionable,
it doesn't hurt either and a port is trivial.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agotests: Stop using Gtk.PolicyType
Florian Müllner [Wed, 12 Apr 2023 13:20:42 +0000 (15:20 +0200)]
tests: Stop using Gtk.PolicyType

St got its own enum type years ago, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agotests: Remove gapplication test app
Florian Müllner [Wed, 12 Apr 2023 13:24:25 +0000 (15:24 +0200)]
tests: Remove gapplication test app

Its only purpose is to provide a test case for the remote app menu,
but that support was removed in gnome-shell years ago. We don't
need a test case for GTK's fallback app menu support, so remove
the whole thing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2733>

3 years agodata: Use ConditionEnvironment on unit files
Joan Torres [Wed, 7 Jun 2023 07:59:25 +0000 (09:59 +0200)]
data: Use ConditionEnvironment on unit files

Following GNOME/gnome-shell!1472. It's been almost three years since
ConditionEnvironment was available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2791>

3 years agobackgroundApps: Allow activating apps
Florian Müllner [Fri, 19 May 2023 17:02:08 +0000 (19:02 +0200)]
backgroundApps: Allow activating apps

Now that we track apps instead of instances, we can make the menu
items activatable, because the corresponding action is no longer
app specific (like activating a particular tab): We can simply
activate the app, which hopefully will bring it to the foreground
again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2790>

3 years agobackgroundApps: Track apps instead of instances
Florian Müllner [Fri, 19 May 2023 14:36:39 +0000 (16:36 +0200)]
backgroundApps: Track apps instead of instances

The background apps menu currently tracks instances rather than
apps. That matches the behavior of `flatpak ps` and can be useful,
for example when one particular instance runs out of control.

But as we don't include any information that allows to actually
distinguish between instances, multiple instances appear simply
as duplicated app entries.

Given that a menu is too limited for detailed information, stop
representing individual instances, and track apps instead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6654

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2790>

3 years agoUpdate Portuguese translation
Hugo Carvalho [Sun, 4 Jun 2023 07:44:01 +0000 (07:44 +0000)]
Update Portuguese translation

3 years agooverview: Provide public access for search provider registration
Andy Holmes [Thu, 1 Jun 2023 22:54:59 +0000 (15:54 -0700)]
overview: Provide public access for search provider registration

Provide a reasonably public way to register and unregister search
providers, without adding too much API.

`Main.overview.searchController` provides access that may be generally
useful, while `SearchController.addProvider()` and
`SearchController.removeProvider()` provide a simple interface for
extensions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2783>

3 years agoscreencastService: Fix 'pipeline' option
robert.mader@collabora.com [Tue, 30 May 2023 18:23:14 +0000 (20:23 +0200)]
screencastService: Fix 'pipeline' option

When introducing the pipeline fallback mechanism, support for defining a
custom pipeline was unintentionally dropped, breaking extensions such as
EasyScreenCast.

Fixes 9cb40c4814b6be908edde4fb77a8d900a4cac51a

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2782>

3 years agoUpdate Catalan translation
Jordi Mas i Hernandez [Sun, 28 May 2023 17:52:00 +0000 (17:52 +0000)]
Update Catalan translation

3 years agoUpdate Turkish translation
Sabri Ünal [Fri, 26 May 2023 23:06:55 +0000 (23:06 +0000)]
Update Turkish translation

3 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Fri, 26 May 2023 22:23:11 +0000 (22:23 +0000)]
Update Brazilian Portuguese translation

3 years agobuild: Remove Soup2 support
Florian Müllner [Wed, 24 May 2023 15:09:55 +0000 (17:09 +0200)]
build: Remove Soup2 support

We started to support Soup3 in GNOME 41, and used it by default
since GNOME 43. This should be enough time for distros to adapt,
so GNOME 45 looks like a good moment to drop the old Soup2 support.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2776>

3 years agosubprojects/extensions-tool: Support stylesheet variants
Florian Müllner [Tue, 21 Mar 2023 21:56:27 +0000 (22:56 +0100)]
subprojects/extensions-tool: Support stylesheet variants

Now that extensions can provide dark/light variants of their
stylesheet, pick up those files automatically when packaging
an extension.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agoextensionSystem: Support stylesheet variants
Florian Müllner [Tue, 21 Mar 2023 21:53:05 +0000 (22:53 +0100)]
extensionSystem: Support stylesheet variants

Since we started to support the color-scheme preference, extensions
should be able to provide appropriate variants (if they deal with
colors).

So look for a variant with -dark/-light suffix before using the
plain stylesheet.css, and reload extension stylesheets on
color scheme changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agomain: Consider color-scheme setting for default stylesheet
Florian Müllner [Fri, 3 Jun 2022 15:21:08 +0000 (17:21 +0200)]
main: Consider color-scheme setting for default stylesheet

Our own preference - equivalent to AdwStyleManager's color-scheme
property - is expressed via a new session mode property.

The default mode uses 'prefer-dark', gnome-classic is expected
to use 'force-light'.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5545

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agotheme: Include both dark and light variant in resource
Florian Müllner [Fri, 3 Jun 2022 14:15:38 +0000 (16:15 +0200)]
theme: Include both dark and light variant in resource

This will allow us to switch between the variants according to
the color-scheme setting.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5545

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agost/settings: Expose system color scheme
Florian Müllner [Fri, 3 Jun 2022 15:19:59 +0000 (17:19 +0200)]
st/settings: Expose system color scheme

This is the same interface setting that backs AdwStyleManager.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5545

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2324>

3 years agostyle: Fixes deprecated compound selectors in sass
Sam Hewitt [Wed, 24 May 2023 12:42:11 +0000 (10:12 -0230)]
style: Fixes deprecated compound selectors in sass

- closes #6718

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2775>

3 years agoibusManager: Close candidate popup upon engine change
Daniel Drake [Wed, 24 May 2023 08:34:42 +0000 (10:34 +0200)]
ibusManager: Close candidate popup upon engine change

The IBusCandidatePopup can get 'stuck' in an active, visible state if
it is on-screen at the point when the input method is changed to a method
that doesn't use such popup (e.g. regular English).

Force the candidate popup to close when the engine is changed.
It will reappear (via regular lookup table update signal) if/when it is
next required.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6717
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2774>

3 years agostyle: Add missing transition timings to some widgets
Automeris naranja [Sun, 21 May 2023 22:51:46 +0000 (19:51 -0300)]
style: Add missing transition timings to some widgets

This change adds missing transition timings to the following widgets:

- Calendar month selectors
- App grid page arrows
- Page indicators dots from the app grid

Follow-up from https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2309/diffs?commit_id=ec571eb86fce93b3b37306b3478cde24019ce8e9

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2665>

3 years agoUpdate Czech translation
Daniel Rusek [Mon, 22 May 2023 13:13:08 +0000 (13:13 +0000)]
Update Czech translation

3 years agodnd: Don't leak a signal connection
Zacharie DUBRULLE [Thu, 18 May 2023 11:40:32 +0000 (11:40 +0000)]
dnd: Don't leak a signal connection

The handler is currently leaked when a drag monitor stops a
motion event.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2770>

3 years agoci: Bump mutter image
Florian Müllner [Fri, 19 May 2023 14:37:49 +0000 (16:37 +0200)]
ci: Bump mutter image

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2772>

3 years agostyle: Clean up calendar widget css
Sam Hewitt [Wed, 17 May 2023 18:54:49 +0000 (16:24 -0230)]
style: Clean up calendar widget css

- use existing button styles for the calendar items
- change visual treatment of weekends; fixes #1767
- clean up class names

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2769>

3 years agostyle: Fix inconsistency in app folder entry style
Sam Hewitt [Wed, 17 May 2023 17:41:54 +0000 (15:11 -0230)]
style: Fix inconsistency in app folder entry style

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2768>

3 years agopopupMenu: Replace ornament unicode with icons
maniacx [Tue, 16 May 2023 23:33:19 +0000 (18:33 -0500)]
popupMenu: Replace ornament unicode with icons

Ported from Sam Hewett's Merge-Request.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2308#8714a3530d73823716c0f8334aceaabeaccd01b7

The CHECK ornament used in powerprofile and volume control is not very
pleasant looking, specially if system font is changed.
Replace CHECK and DOT unicode ornament with revelant icons in popupMenu.

Solves issue: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6055

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2767>

3 years agostyle: Scale calendar heading with font size
Sebastian Keller [Wed, 3 May 2023 10:04:00 +0000 (12:04 +0200)]
style: Scale calendar heading with font size

Using a fixed pixel size can result in the cell being too small for the
contained label. Instead use em to scale with the font size like is done
for the other cells. The chosen size corresponds to 16px with the
default font settings.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6651
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2759>

3 years agotools/create-toolbox: Allow setting up support for GNOME Classic
Florian Müllner [Sun, 19 Mar 2023 17:43:19 +0000 (18:43 +0100)]
tools/create-toolbox: Allow setting up support for GNOME Classic

As unbeloved as it is, it still needs testing. Make that a tad
bit less annoying by automating the setup.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Allow enabling additional locales
Florian Müllner [Mon, 20 Mar 2023 20:21:36 +0000 (21:21 +0100)]
tools/create-toolbox: Allow enabling additional locales

Out of the box, the container images only support US English. It
can sometimes be necessary to use a different locale, so add
a convenience flag to enable support for additional locales.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Optionally create Builder config
Florian Müllner [Fri, 17 Mar 2023 09:32:33 +0000 (10:32 +0100)]
tools/create-toolbox: Optionally create Builder config

It is possible to run gnome-shell nested from gnome-builder,
but the setup is fairly tedious.

Add another option to the script to generate a suitable
.buildconfig file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Allow skipping mutter build
Florian Müllner [Sat, 18 Mar 2023 03:45:26 +0000 (04:45 +0100)]
tools/create-toolbox: Allow skipping mutter build

The container is useless for building or running gnome-shell unless
it includes the correct mutter version, so building it by default
makes sense.

However a manual build can be significantly faster when there's an
existing build dir, so add an option to skip the automatic build.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Allow replacing existing toolbox
Florian Müllner [Mon, 20 Mar 2023 14:09:25 +0000 (15:09 +0100)]
tools/create-toolbox: Allow replacing existing toolbox

A toolbox created by the script can be used as the base of a pet
container that is manually updated with new dependencies over time
and accumalates additional packages; or it can be used as a deposable
container that is recreated each time the dependencies change.

To make the latter case more convenient, add a --replace option
that deletes an existing toolbox before creating the new one.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agotools/create-toolbox: Add convenience script
Florian Müllner [Fri, 17 Mar 2023 00:07:56 +0000 (01:07 +0100)]
tools/create-toolbox: Add convenience script

The script is a thin wrapper around `toolbox create`, mainly to
avoid the tedious image names. In addition, it allows us to
ensure that the container includes a matching mutter version.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agoci: Produce toolbox images
Florian Müllner [Thu, 16 Mar 2023 18:01:45 +0000 (19:01 +0100)]
ci: Produce toolbox images

Toolbox is a convenient option for development, but setting up
the image with all dependencies is annoying at best, in particular
later in the cycle when `dnf builddep` is likely insufficient.

To address that, produce toolbox images for main and stable branches
that are based on the regular CI image, and update them whenever
the image version is updated. This guarantees that all build- and
runtime dependencies are included.

Unsurprisingly, the script that produces the image draws heavily
from freedesktop's ci-templates. The most notable difference
(other than being neither distro-agnostic nor generic) is that
tag names are fixed (toolbox:main, toolbox:43 etc.) to make them
easier to consume.

Instead, whether an image needs rebuilding is based on a custom
label that records the base image that was used.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2713>

3 years agompris: Fall back to app icon first
Florian Müllner [Wed, 19 Apr 2023 10:54:17 +0000 (12:54 +0200)]
mpris: Fall back to app icon first

When no cover art is available, the app icon at least allows
distinguishing between different players, so try falling back
to that before using the generic icon name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2755>

3 years agompris: Expose player app
Florian Müllner [Wed, 19 Apr 2023 10:51:14 +0000 (12:51 +0200)]
mpris: Expose player app

This will allow accessing it from the notification.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2755>

3 years agoUpdate Hebrew translation
Yosef Or Boczko [Mon, 15 May 2023 13:28:17 +0000 (13:28 +0000)]
Update Hebrew translation

3 years agoUpdate Catalan translation
Jordi Mas [Fri, 12 May 2023 17:37:15 +0000 (19:37 +0200)]
Update Catalan translation

3 years agoUpdate French translation
Guillaume Bernard [Fri, 12 May 2023 12:22:00 +0000 (12:22 +0000)]
Update French translation

3 years agoUpdate Italian translation
Gianvito Cavasoli [Thu, 11 May 2023 15:45:43 +0000 (15:45 +0000)]
Update Italian translation

(cherry picked from commit e8d2012983e4883c849b7755cb01c92db2b821e6)

3 years agopolkitAgent: Fix closing dialog properly
Joan Torres [Tue, 9 May 2023 16:36:40 +0000 (18:36 +0200)]
polkitAgent: Fix closing dialog properly

When pressing the close button on the dialog the polkit request isn't
completed leaving the polkit agent blocked unable to handle new
requests.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2761>

3 years agoshell: Use swapped signal connection for MetaWindowActor::destroy
Carlos Garnacho [Mon, 1 May 2023 15:04:46 +0000 (17:04 +0200)]
shell: Use swapped signal connection for MetaWindowActor::destroy

The callback would schedule a clutter_actor_destroy() on the first
argument. Unless told otherwise, this is the same actor that is
already being destroyed, so this is a no-op.

Instead, the intent is to make the clone follow up destruction of
the window actor so that it results in correct removal of this
window from the ShellWindowPreviewLayout. Use a swapped connection
to pass the clone actor as the first argument of the signal callback.

Fixes: 04c781674c ("Move WindowPreviewLayout from JS to C")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6570
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2756>

3 years agostyle: Adjust the tooltip style; fix inconsistency with screenshot UI
Sam Hewitt [Tue, 2 May 2023 13:31:12 +0000 (11:01 -0230)]
style: Adjust the tooltip style; fix inconsistency with screenshot UI

- remove screenshot tooltips using a style different from other tooltips
- tone down how dark they are
- fix missing background adjustment for high contrast

Fixes #6660

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2757>

3 years agoUpdate Turkish translation
Sabri Ünal [Mon, 1 May 2023 10:29:52 +0000 (10:29 +0000)]
Update Turkish translation

3 years agoUpdate Finnish translation
Jiri Grönroos [Sat, 29 Apr 2023 11:30:16 +0000 (11:30 +0000)]
Update Finnish translation

(cherry picked from commit 60200c88a85d0952500fa9b2a7d25384c65f37b7)

3 years agoUpdate Friulian translation
Fabio Tomat [Sat, 29 Apr 2023 08:29:19 +0000 (08:29 +0000)]
Update Friulian translation

3 years agoUpdate Friulian translation
Fabio Tomat [Fri, 28 Apr 2023 07:52:59 +0000 (07:52 +0000)]
Update Friulian translation

3 years agoscreencastService: Fixup pipeline fallback behavior
Jonas Dreßler [Wed, 26 Apr 2023 17:13:27 +0000 (19:13 +0200)]
screencastService: Fixup pipeline fallback behavior

Calling _teardownPipeline() before _tryNextPipeline() was actually not a
good idea, it sets the pipelineState to STOPPED, which means we can't try
any of the following pipelines anymore.

Instead what we want to do is set the pipeline state of the old pipeline to
NULL when trying a new one, without calling _teardownPipeline() for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2754>

3 years agoscreenshot: Remove leftover code in property getter
Jonas Dreßler [Wed, 26 Apr 2023 17:31:53 +0000 (19:31 +0200)]
screenshot: Remove leftover code in property getter

According to Ivan (author of that piece of code), this is most likely a
leftover from a refactor and has no purpose anymore, so remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2753>

3 years agoglsl-effect: Don't overwrite the framebuffer's alpha/X channel
Daniel van Vugt [Fri, 17 Feb 2023 06:17:56 +0000 (14:17 +0800)]
glsl-effect: Don't overwrite the framebuffer's alpha/X channel

It's a waste of effort and will also taint screenshots if they
accidentally store that channel as alpha.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6389
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650>

3 years agoRemove keyboard shortcut to open the app menu in the panel
Jonas Dreßler [Mon, 23 Jan 2023 16:21:14 +0000 (17:21 +0100)]
Remove keyboard shortcut to open the app menu in the panel

Now that the app menu indicator is no longer shown, it shouldn't be possible
to toggle the popup menu via keyboard shortcut anymore, so remove the code
and gsettings definitions for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2610>

3 years agopanel: Remove the appMenu indicator
Jonas Dreßler [Mon, 23 Jan 2023 15:22:03 +0000 (16:22 +0100)]
panel: Remove the appMenu indicator

Over time the app menu has proved to be an issue and lately there has been
some movement to fix that (see also
https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/198).

As a first step, let's stop showing the indicator (not removing the code
yet) so that we can iterate on a more elegant solution.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2610>

3 years agoscreencastService: Add dmabuf/GL pipeline
robert.mader@collabora.com [Sat, 11 Feb 2023 06:06:14 +0000 (07:06 +0100)]
screencastService: Add dmabuf/GL pipeline

This pipeline imports dmabufs and does format conversion using GL.
The `video/x-raw(memory:DMABuf)` filter ensures format negotiation
between `pipewiresrc` and Mutter will only succeed if Mutter advertises
dmabuf support as well, falling back to the next pipeline otherwise.

Using this pipeline frees Mutter from downloading buffer content on the
main thread which can have a big impact on compositor performance.
Doing format conversion on the GPU should further improve the overall
performance on most hardware.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2597>

3 years agoscreenshot: Also handle dbus service crashes
Jonas Dreßler [Wed, 26 Apr 2023 11:27:38 +0000 (13:27 +0200)]
screenshot: Also handle dbus service crashes

When the screencast dbus service crashes due to gstreamer, we should also
handle that and not pretend to continue recording.

Let's listen to g-name-owner changes for that and then also send a
notification about it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

3 years agoscreenshot: Handle screencast errors properly
Jonas Dreßler [Wed, 26 Apr 2023 10:34:17 +0000 (12:34 +0200)]
screenshot: Handle screencast errors properly

Send a notification and remove the screencast inidicator when we hear about
a screencast error from the dbus service.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

3 years agoscreencastService: Signal errors via the internal dbus interface
Jonas Dreßler [Wed, 26 Apr 2023 10:29:57 +0000 (12:29 +0200)]
screencastService: Signal errors via the internal dbus interface

Make sure gnome-shell gets notified of errors that happen during screen
recording using the screencastService, so that it can properly notify the
user about the error and tear down its state, too.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

3 years agoscreencastService: Do not try multiple pipelines on old Pipewire versions
robert.mader@collabora.com [Mon, 20 Feb 2023 17:27:32 +0000 (18:27 +0100)]
screencastService: Do not try multiple pipelines on old Pipewire versions

Pipewire versions < 0.3.67 may not fail immediatly on negotiation
errors, thus use the last/fallback pipeline directly.
Technically, a similar recent version of Wireplumber is required
as well, but we can't check that easily and the combination of old
Wireplumber and new Pipewire is quite unlikely.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

3 years agoscreencastService: Add fallback mechanism for gstreamer pipelines
Jonas Dreßler [Fri, 28 Jan 2022 23:51:31 +0000 (00:51 +0100)]
screencastService: Add fallback mechanism for gstreamer pipelines

Introduce a fallback mechanism for gstreamer pipelines that allows to
define multiple pipelines and prefer them over each other.

The way this works is that we introduce a new STARTING PipelineState.
While the Recorder is in that state, it is allowed to tear down the
current pipeline and start another one whenever an error happens, this is
used to try multiple pipelines in a fixed order until a working one is
found.

Right now there's just a single pipeline using the existing vp8 encoder, the
actual new encoders and pipelines will be added in a separate commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

3 years agoscreencastService: Drop always-copy condition
robert.mader@collabora.com [Mon, 20 Feb 2023 17:07:23 +0000 (18:07 +0100)]
screencastService: Drop always-copy condition

The check for the Pipewire version was originally introduced in
d32c0348 which states:
> Since it is not clear yet when a proper solution will arrive,
> this makes use of `always-copy` as a workaround for now and
> should be reverted once it is no longer needed.

The check for a stable Gstreamer version with the mention proper fix was
introduced in d7b44319 and carried for the 43 cycle.

By the time Gnome 44 will be released all distros should have had enough
time to update their Gstreamer version - or backport the patches, in
case of not ustream-supported versions.

Thus lets drop it now.

Note: `always-copy` is not suitable for dmabuf buffers as it copies via
mmap.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

3 years agoscreencastService: Set PipelineState to PLAYING on actual state-change
Jonas Dreßler [Thu, 3 Feb 2022 10:26:59 +0000 (11:26 +0100)]
screencastService: Set PipelineState to PLAYING on actual state-change

Right now when we tell gstreamer to move the pipeline to the state
PLAYING, we pretend that happens immediately and set our PipelineState
to PLAYING right afterwards.

In reality though it's more complicated than that: Gstreamer changes
states asynchronously and set_state() returns a Gst.StateChangeReturn.ASYNC.
In that case we should wait until the according STATE_CHANGED event happens
on the bus, and only then set our PipelineState to PLAYING.

Since the STATE_CHANGED event will also happen when set_state() returns
SUCCESS, we can use the same async logic for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Handle more gstreamer errors
Jonas Dreßler [Fri, 28 Jan 2022 23:40:24 +0000 (00:40 +0100)]
screencastService: Handle more gstreamer errors

Gstreamer can produce various errors, we shouldn't pretend those don't
exist and go on as usual when one happens. Instead, when an error
happens, tear down the pipeline, set our PipelineState to the new ERROR
state and bail out with a proper error message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Streamline teardown and error handling
Jonas Dreßler [Fri, 28 Jan 2022 22:50:35 +0000 (23:50 +0100)]
screencastService: Streamline teardown and error handling

We're tracking three different state-machines in the Recorder object:
The state of the gstreamer pipeline, the state of the screencast
session, and the sender of our dbus invocation that might vanish.

Properly handling errors that might appear in any of those three "black
boxes" is not easy, especially tearing down the other two when one of
them breaks.

So refactor the error handling here: Add a single error path for each of
those three states we're tracking, and make them all subsequently call
the _bailOutOnError() method. From there we tear down the other states and
call the error callbacks.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Add an ERROR state for the pipeline state tracking
Jonas Dreßler [Fri, 28 Jan 2022 23:31:15 +0000 (00:31 +0100)]
screencastService: Add an ERROR state for the pipeline state tracking

This will be useful when we start actually listening for ERROR events on
the gstreamer bus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Use strings for states
Jonas Dreßler [Fri, 28 Jan 2022 23:31:00 +0000 (00:31 +0100)]
screencastService: Use strings for states

Using strings instead of numbers allows for easier debugging, it means
we can just log the state itself.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Promisify Recorder start/stopRecording functions
Jonas Dreßler [Thu, 3 Feb 2022 10:10:36 +0000 (11:10 +0100)]
screencastService: Promisify Recorder start/stopRecording functions

This will allow for cleaner error handling in the following commits.

A benefit we get from it right now is having one less callback when
calling startRecording/stopRecording().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agostatus/bluetooth: Use 'Alias' for item labels
Florian Müllner [Sun, 23 Apr 2023 19:10:40 +0000 (21:10 +0200)]
status/bluetooth: Use 'Alias' for item labels

Unlike 'Name', the 'Alias' property can be changed by the user,
so it's more suitable for user-visible labels.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6626

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2751>

3 years agoportalHelper: Use libadwaita instead of plain Gtk4
Florian Müllner [Wed, 8 Mar 2023 22:20:20 +0000 (23:20 +0100)]
portalHelper: Use libadwaita instead of plain Gtk4

This gives us the proper platform stylesheet, as well as support
for dark style and other platform features.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Stop using a subtitle
Florian Müllner [Wed, 8 Mar 2023 21:53:22 +0000 (22:53 +0100)]
portalHelper: Stop using a subtitle

The pattern has become a lot less common, not least indicated
by the removal of the HeaderBar:subtitle property. And in this
case we are including an icon in the subtitle, which looks
completely out of place.

Address this by moving the URL/security information into a
popover menu, inspired by the similar drop-down in GNOME Web.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Port to Gtk4/WebKit6
Florian Müllner [Wed, 8 Mar 2023 18:25:04 +0000 (19:25 +0100)]
portalHelper: Port to Gtk4/WebKit6

WebKit was blocking the portal helper from being ported to Gtk4
together with other external tools. Now that WebKit6 is about to
become stable, the port can go ahead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Don't use deprecated API during policy decision
Florian Müllner [Wed, 8 Mar 2023 19:03:40 +0000 (20:03 +0100)]
portalHelper: Don't use deprecated API during policy decision

NavigationPolicyDecision.get_request() is deprecated, and the
method from the corresponding NavigationAction should be used
instead.

Rearrange the code to do that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Adjust coding style
Florian Müllner [Wed, 8 Mar 2023 18:51:54 +0000 (19:51 +0100)]
portalHelper: Adjust coding style

Most of the file already complies with the new style. Quickly change
the last remaining bits of legacy style before making further changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Stop monkey-patching String.format()
Florian Müllner [Wed, 8 Mar 2023 18:40:01 +0000 (19:40 +0100)]
portalHelper: Stop monkey-patching String.format()

It's not used, so no need to set it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Remove pointless destroyWindow() method
Florian Müllner [Wed, 8 Mar 2023 18:27:27 +0000 (19:27 +0100)]
portalHelper: Remove pointless destroyWindow() method

Years ago, the function used to clean up the cache when the
window was closed. But now that an ephemeral data manager is
used, nothing is cached anymore and the function is left as
a mere wrapper around this.destroy().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoscreenshot: Use independent tooltips for the Screenshot/Screencast buttons
Automeris naranja [Mon, 6 Mar 2023 22:44:43 +0000 (19:44 -0300)]
screenshot: Use independent tooltips for the Screenshot/Screencast buttons

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6189

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2683>

3 years agoenvironment: Remove old compatibility code
Florian Müllner [Wed, 5 Apr 2023 15:27:21 +0000 (17:27 +0200)]
environment: Remove old compatibility code

St.set_slow_down_factor() has been deprecated for over 3 years
(since 3.34). That's plenty of time for extensions to switch to
St.Settings.get().slow_down_factor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2743>

3 years agostatus/backgroundApps: Show spinner when closing
Florian Müllner [Tue, 11 Apr 2023 13:29:55 +0000 (15:29 +0200)]
status/backgroundApps: Show spinner when closing

It can take a little while for an app to quit after the user
clicked the close button, and another for the portal to pick
up the change.

In order to provide feedback to the user that the request is
being handled, replace the close button with a spinner.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6441

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2732>

3 years agoworkspaceThumbnail: Use click action
Florian Müllner [Thu, 20 Apr 2023 01:30:04 +0000 (03:30 +0200)]
workspaceThumbnail: Use click action

Now that we have a convenient way of combining a draggable with
a click action, we can port the code without making it more
complicated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2742>

3 years agodnd: Add addClickAction() method
Florian Müllner [Thu, 20 Apr 2023 10:26:23 +0000 (12:26 +0200)]
dnd: Add addClickAction() method

The events that the draggable uses to initiate a drag operation
are the same as the ones a click action consumes for clicks.

It is still possible to combine the two, but it's finicky and far
from being straight-forward. To make this easier, add a dedicated
addClickAction() method to draggables that takes care of the
setup before adding the action to the draggable actor.

In the longer term, we'll want to turn DND into an action, and
have something like GTK's gesture group to allow combining actions
that would otherwise step on each other's toes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2742>

3 years agopopupMenu: Replace event handlers with click action
Florian Müllner [Wed, 19 Apr 2023 12:11:09 +0000 (14:11 +0200)]
popupMenu: Replace event handlers with click action

Actions provide a higher-level API than event handlers, not unlike
GTK's event controllers (albeit less complete). Allowing them to
take care of the low-level bits where possible is generally a good
idea.

Menu items are a very straight-forward case, with a good amount
of code saving, so port them over.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2742>